Applications on the web spend part of their execution time on local computation and spend the rest in accessing databases, web services or other applications remotely. For any remote access, there is a conversation between an application server and a database/web service in the form of a requests (SQL queries/HTTP requests) and responses. In such applications, the time taken for remote access is split between (a) preparing requests, (b) transmitting them over the network, (c) actual computation at the database, to serve the request [(involving processing and disk input and output (IO)], (d) preparing responses, (e) transmitting responses back over the network.